package com.optimus.facade;

import com.optimus.common.cvo.CampanaVOList;
import com.optimus.common.cvo.ElementoPublicitarioCVO;
import com.optimus.common.cvo.ElementoPublicitarioCVOList;
import com.optimus.common.cvo.ElementoPublicitarioVOList;
import com.optimus.common.cvo.ElementoPublicitarioViewVOList;
import com.optimus.common.cvo.MapaCVOList;
import com.optimus.common.cvo.MercadoVOList;
import com.optimus.common.cvo.PuntosMapaCVOList;
import com.optimus.common.cvo.VerificadorVOList;
import com.optimus.common.util.ApplicationException;
import com.optimus.common.vo.CampanaVO;
import com.optimus.common.vo.ElementoPublicitarioVO;
import com.optimus.common.vo.MapaVO;
import com.optimus.common.vo.MercadoVO;
import com.optimus.common.vo.PuntosMapaVO;
import com.optimus.common.vo.ResultadoVO;
import com.optimus.common.vo.VerificadorVO;
import com.optimus.common.vo.view.ElementoPublicitarioViewVO;

/**
 *
 * @author victor
 */
public interface PlaneamientoFacade {
    MercadoVOList listarMercado(MercadoVO mercadoVO) throws ApplicationException;
    CampanaVOList listarCampana(CampanaVO campanaVO) throws ApplicationException;
    CampanaVOList listarCampanaActiva(CampanaVO campanaVO) throws ApplicationException;
    ElementoPublicitarioVOList listarEP(ElementoPublicitarioVO epvo) throws ApplicationException;
    VerificadorVOList listarVerificador(VerificadorVO productoVO) throws ApplicationException;
    MapaCVOList listarMapa(MapaVO mapaVO) throws ApplicationException;
    ElementoPublicitarioCVOList listarEPMercadoCampana(ElementoPublicitarioCVO epcvo) throws ApplicationException;
    ResultadoVO generarRutaOptima (ElementoPublicitarioCVOList elementoPublicitarioList,CampanaVO campanaVO) throws ApplicationException;
    ResultadoVO generarMapas(CampanaVO campanaVO) throws ApplicationException;
    PuntosMapaCVOList listarPuntosMapa(PuntosMapaVO puntosMapaVO) throws ApplicationException;
    public ElementoPublicitarioViewVOList listarEPVerificador(ElementoPublicitarioViewVO clusterPruebaVO) throws ApplicationException;
}
